Python matplotlib设置字体

您所在的位置:网站首页 pyplot 下载 Python matplotlib设置字体

Python matplotlib设置字体

2023-08-20 05:00| 来源: 网络整理| 查看: 265

本文作者:Sunny-King

发布时间:2022-08-17 10:39:16 星期三

本文链接:https://www.cnblogs.com/Sunny-King/p/Python-matplotlib_font.html

近期在利用python的matplotlib模块进行数据的可视化,发现对于中文的支持不是很好,并且有些字体达不到所需效果,因此研究了该模块的字体配置。 一、软件版本

首先记录下测试使用的python版本和matplotlib的版本

python-3.7.0 matplotlib-2.2.3 import sys import matplotlib print(sys.version) 3.7.0 (default, Jun 28 2018, 13:15:42) [GCC 7.2.0] print(matplotlib.__version__) 2.2.3 二、使用系统已有字体

对于系统已经安装的字体可以直接使用,不需要额外安装或者下载,此方法比较简单。

1、导入依赖模块 import matplotlib import matplotlib.pyplot as plt from matplotlib import font_manager 2、查看系统已安装的字体

利用函数\(font\_manager.fontManager.ttflist\)列出可以直接使用的字体

font_list = [x.name for x in font_manager.fontManager.ttflist]

对于列表中已存在的字体可以根据字体名字直接使用

3、配置局部字体

此方法可以更改局部的字体,比如将图片的legend改为Times New Roman字体,其余字体保持不变。 利用字典方法,首先定义一个字体格式字典,在函数种利用关键字传入字体格式

fontdict = {'family': 'Times New Roman', 'size': 15, 'style': 'italic'} plt.legend(loc='best',prop=fontdict)

类方法利用\(font\_manager.FontProperties\)实例化一个字体的类。

FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, _init=None) # family: 指定字体类别 # style: 风格 'normal', 'italic' or 'oblique'. # variant: Either 'normal' or 'small-caps' # fname: 指定字体文件的绝对路径 my_font = font_manager.FontProperties(family="STIX", size=20) plt.title("STIX", fontproperties=my_font) 4、配置全局字体

如果需要将图片所有字体保持统一,上述方法需要在每个地方都指定字体略显麻烦。下面方法可以设置全局字体,将图片字体保持统一,使用\(matplotlib.pyplot.rcParams\)指定全局字体

plt.rcParams['font.sans-serif']=['STIX'] 三、导入第三方字体

对于系统没有安装的字体需要自行下载,然后指定字体文件的方式选择字体。

1、导入字体

获取下载的第三方字体的路径,可以从网页下载,这里以本人电脑的华文楷体为例,存放路径为当前路径下的Script,文件名为STKAITI.TTF

2、局部使用

利用\(font\_manager.FontProperties\)根据字体文件定义一个字体的类

my_font = font_manager.FontProperties(fname = "Script/STKAITI.TTF")

在需要使用该字体的的地方指定为my_font

plt.title("使用STKAITI字体", fontproperies=my_font) 3、配置全局

首先获取路径下可被识别的字体文件

font_manager.findSystemFonts(fontpaths=["Script"]) # 返回路径下字体文件的列表 font_files = font_manager.findSystemFonts(fontpaths=[font_path]) font_list = font_manager.createFontList(font_files) font_manager.fontManager.ttflist.extend(font_list) plt.rcParams['font.family'] = 'STKaiti'


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3